ajouter une panier php

47

<? php   
	 /* Si l'utilisateur a cliqué sur le bouton "Ajouter au panier" sur la page du produit, nous pouvons vérifier les données du formulaire.*/   
	 if (isset($_POST['produit_id'], $_POST['quantité']) && is_numeric($_POST['produit_id']) && is_numeric($_POST['quantité'])) {   
	     /* Définissez les variables post afin que nous puissions les identifier facilement, assurez-vous également qu'elles sont entières.*/   
	     $produit_id = (int)$_POST['produit_id'];   
	     $quantité = (int)$_POST['quantité'];   
	     /* Préparez l'instruction SQL, nous vérifions essentiellement si le produit existe dans notre base de données.*/   
	     $stmt = $pdo->prepare('SELECT * FROM produits WHERE id = ?');   
	     $stmt->execute([$_POST['produit_id']]);   
	     /* Récupère le produit depuis la base de données et renvoie le résultat sous forme de tableau.*/   
	     $produit = $stmt->fetch(PDO::FETCH_ASSOC);   
	     // Vérifier si le produit existe (le tableau n'est pas vide)   
	     if ($produit && $quantité > 0) {   
	         /*Le produit existe dans la base de données, maintenant nous pouvons créer/mettre à jour la variable de session pour le panier.*/   
	         if (isset($_SESSION['panier']) && is_array($_SESSION['panier'])) {   
	             if (array_key_exists($produit_id, $_SESSION['panier'])) {   
	                 // Le produit existe dans le panier, il suffit de mettre à jour la quantité.   
	                 $_SESSION['panier'][$produit_id] += $quantité;   
	             } else {   
	                 // Le produit n'est pas dans le panier, ajoutez-le   
	                 $_SESSION['panier'][$produit_id] = $quantité;   
	             }
	         } else {   
	             /* Il n'y a aucun produit dans le panier, ceci ajoutera le premier produit au panier.*/   
	             $_SESSION['panier'] = array($produit_id => $quantité);   
	         }
	     }   
	     // Empêcher la resoumission des formulaires...   
	     header('location: index.php?page=panier');   
	     exit;
	 }

Comments

Submit
0 Comments